﻿using Microsoft.Xna.Framework;

namespace HumanElement.Xna
{
    public interface IRender
    {
        /// <summary>
        /// Gets a value indicating whether this <see cref="IRender"/> is visible.
        /// </summary>
        /// <value><c>true</c> if visible; otherwise, <c>false</c>.</value>
        bool Visible { get; }

        /// <summary>
        /// Gets the viewport.
        /// </summary>
        /// <value>The viewport.</value>
        IViewport Viewport { get; }

        /// <summary>
        /// Gets the game time.
        /// </summary>
        /// <value>The game time.</value>
        GameTime GameTime { get; }

        /// <summary>
        /// Gets the camera.
        /// </summary>
        /// <value>The camera.</value>
        ICamera Camera { get; }

        /// <summary>
        /// Renders the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        void Render(CameraContext context);
    }
}